Computing system predictive build

ABSTRACT

Features to include within a predictive build of a computing system are selected. The predictive build is an anticipated final build of the computing system prior to receiving a firm customer order for the computing system in accordance with which an actual final build of the computing system is then built. A marginal cost of first building the predictive build and then modifying the predictive build to realize the actual final build, as compared to building the actual final build without first building the predictive build and then modifying predictive build to realize the actual final build, is estimated based on the features selected. Responsive to determining that the marginal cost is less than a predetermined acceptable marginal cost limit, the predictive build is built prior to receiving the firm customer order, and then is modified to realize the actual final build upon receiving the firm customer order.

BACKGROUND

Server computing devices have become the lifeblood of manyorganizations. For large organizations like business enterprises andgovernmental concerns, servers can be quite sophisticated and largepieces of hardware, involving many different components assembled in adizzying number of particular configurations. As computing needs havegrown, such organizations have purchased more and more servers, both toreplace outdated existing servers and supplement existing servers withincreased capacity.

SUMMARY

An example storage device stores a computer program executable by aprocessor to perform a method. The method includes selecting features toinclude within a predictive build of a computing system. The predictivebuild is an anticipated final build of the computing system prior toreceiving a firm customer order for the computing system in accordancewith which an actual final build of the computing system is then built.The method includes estimating a marginal cost of first building thepredictive build and then modifying the predictive build to realize theactual final build, as compared to building the actual final buildwithout first building the predictive build and then modifyingpredictive build to realize the actual final build, based on thefeatures selected. The method includes responsive to determining thatthe marginal cost is less than a predetermined acceptable marginal costlimit, indicating that the predictive build should be built prior toreceiving the firm customer order. The method includes responsive todetermining that the marginal cost is greater than the predeterminedacceptable marginal cost limit, indicating that the predictive buildshould not be built prior to receiving the firm customer order.

An example system includes a computing device, and a storage devicestoring a database of permissible predictive builds of a computingsystem. The computing device is to select features to include within apredictive build of the computing system. The predictive build is ananticipated final build of the computing system prior to receiving afirm customer order for the computing system in accordance with which anactual final build of the computing system is then built. The computingdevice is to, if the predictive build is identical to any of thepermissible predictive builds stored in the database, indicate that thepredictive build should be built. The computing device is to if thepredictive build is not identical to any of the permissible predictivebuilds, estimate, based on the features selected, a marginal cost offirst building the predictive build and then modifying the predictivebuild to realize the actual final build. This marginal cost is ascompared to building the actual final build without first building thepredictive build and then modifying predictive build to realize theactual final build. The computing device is to, if the marginal cost isless than a predetermined acceptable marginal cost limit, indicate thatthe predictive build should be built, and if the marginal cost isgreater than the predetermined acceptable marginal cost limit, indicatethat the predictive build should not be built.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The drawings referenced herein form a part of the specification.Features shown in the drawing illustrate only some embodiments of thedisclosure, and not of all embodiments of the disclosure, unless thedetailed description explicitly indicates otherwise, and readers of thespecification should not make implications to the contrary.

FIG. 1 is a flowchart of an example build-to-order process.

FIG. 2 is a diagram of example timing as to when an order is received,when the order is completed, and when fulfillment of the order ispromised.

FIG. 3 is a flowchart of an example predictive build process.

FIG. 4 is a flowchart of an example method for determining whether touse the predictive build process or the build-to-order process tosatisfy an order for a computing system.

FIG. 5 is a flowchart of an example method for selecting the features toinclude within a predictive build of a computing system.

FIG. 6 is a diagram of an example system.

DETAILED DESCRIPTION

The following detailed description of exemplary embodiments of thedisclosure refers to the accompanying drawings that form a part of thedescription. The drawings illustrate specific exemplary embodiments inwhich the disclosure may be practiced. The detailed description,including the drawings, describes these embodiments in sufficient detailto enable those skilled in the art to practice the disclosure. Thoseskilled in the art may further utilize other embodiments of thedisclosure, and make logical, mechanical, and other changes withoutdeparting from the spirit or scope of the disclosure.

As noted in the background section, organizations employ sophisticatedserver computing devices. Such servers are generally not purchased “offthe shelf,” but rather are the subject of contracts with manufacturerswho can customize servers to the organizations' needs and specificationsin a bespoke manner. Server manufacture many times is performed undertight schedules, to meet both customer demands as well as internalmanufacturer metrics.

FIG. 1 shows an example build-to-order process 100. In this process 100,what is referred to as a build of a computing system is not starteduntil a customer order for the computing system is received. As such,the order is received from a customer (102), and then the final build ofthe computing system of the customer order is built (104). After thisfinal build has been tested (106), it is shipped to the customer infulfillment of the customer order (108).

FIG. 2 shows an example timing diagram 200 of the various timesassociated with the build-to-order process 100. At a first time 202, acustomer order for a computing system is received, and building andsubsequent testing of a build of the computing system in satisfaction ofthe order is started. The customer order typically specifies a latersecond time 204 when the final build is to be shipped by, or thisdeadline may be associated with an internal-to-the-manufacturer metric,such as a quarterly deadline, and so on.

If building and testing of the final build can be finished at a thirdtime 206 that is before the second time 204, then the build-to-orderprocess 100 is satisfactory. That is, if the time 206 is before the time204, then there is no need to deviate from the build-to-order process100. This is because there is sufficient time between times 202 and 204in which to build and test the final build in fulfillment of thecustomer order.

However, if the third time 206 is after the second time 204, then thismeans that the time at which the final build is to be shipped by willnot be satisfied. This is because the length of time it takes to finishbuilding and testing the final build of the computing system—i.e., theperiod of time between times 202 and 206—is too long to meet the desiredship time 204. As such, the build-to-order process 100 is unsatisfactorywhen the length of time between the customer order receipt time 202 andthe promised ship time 204 is less than the length of time between theorder receipt time 202 and the time 206 at which the final build hasbeen built and satisfactorily tested.

FIG. 3 shows an example predictive build process 300 that can amelioratethe problems associated when the build-to-order process 100 isunsatisfactory. Prior to receiving a customer order for a computingsystem, a predictive build of the computing system is built (302) andtested (304). The predictive build is an anticipated final build of thecomputing system, which is the expected final build that will bespecified in a customer order. Once the customer order is received(306), the predictive build of the computing system is then modified torealize the actual final build specified in the order (308). The actualfinal build of the computing system is tested (310) and shipped (312).

The idea behind the predictive build process 300 is that by building andtesting a predictive build of a computing system prior to receiving afirm customer order for the computing system, a desired final build shiptime can be satisfied where it could not be in the build-to-orderprocess 100. That is, the time it takes to modify the predictive buildto realize the actual final build and then test the actual final buildis less than the period of time between receiving the customer orderspecifying the actual final build and the promised final build shiptime. Where this is the case, the predictive build process 300 can thusbe beneficial to satisfy particularly short deadlines specified incustomer orders where the build-to-order process 100 would not satisfythem.

A difficulty with the predictive build process 300 is selecting thefeatures of the computing system within the predictive build thatnevertheless still permit the predictive build process 300 to be costeffective. There is both a monetary and a time penalty associated withusing the predictive build process 300 in lieu of the build-to-orderprocess 100. Conventionally, assessing this penalty to determine whetherusing the predictive build process 300 is beneficial is performedhaphazardly, using “seat of the pants” guesses and gut instincts ratherthan in a scientific way. Disclosed herein are techniques to determinewhether to employ the predictive build process 300 that are morerigorous by comparison.

FIG. 4 shows an example method 400 for determining whether to use thepredictive build process 300 or the build-to-order process 100 tosatisfy an order for a computing system. Features of the computingsystem to include within a proposed predictive build of the computingsystem are selected (402). The features can include which hardwareelements should be part of the predictive build, as well as in whatconfigurations these elements should be configured. Further detailsregarding the feature selection process are provided later in thedetailed description. Selecting the features of the computing systemdefines the proposed predictive build; that is, a predictive build isdefined by its constituent features to be included as part of thepredictive build.

This predictive build is compared to a database in which permissiblepredictive builds and/or impermissible predicted builds have beenpreviously stored (404). Permissible predictive builds are predictivebuilds that should be built; that is, their corresponding computingsystems should be built using the predictive build process 300.Impermissible predictive builds are predictive builds that should not bebuilt; that is, their corresponding computing systems should be builtusing the build-to-order process 100.

If the predictive build matches any permissible predictive build (406),then the predictive build process 300 is used to satisfy the order forthe computing system (408), or is indicated that it should be used. Thatis, the build-to-order process 100 is not used or is not indicated thatit should be used. If the predictive build does not match anypermissible predictive build (406) but matches any impermissiblepredictive build (410), then the build-to-order process 100 is used tosatisfy the order for the computing system (412), or is indicated thatit should be used. That is, the predictive build process 300 is not usedor is not indicated that it should be used.

If the predictive build does not match any permissible predictive build(406) or any impermissible predictive build (410), then the marginalcost of using the predictive build process 300 instead of thebuild-to-order process 100 is estimated based on the features of thepredictive build that were previously selected (414). This marginal costis the marginal cost of first building the predictive build and thenmodify the predictive build to realize the actual final build to satisfythe order for the computing system, as compared to building the actualfinal build without first building the predictive build and thereaftermodifying the predictive build to realize the actual final build.Further details regarding the marginal cost estimation process areprovided later in the detailed description.

There is a predetermined acceptable marginal cost limit, which is themaximum marginal cost that the manufacturer is willing to expend in timeand/or money to use the predictive build process 300 instead of thebuild-to-order process 100. If the estimated marginal cost is greaterthan the acceptable marginal cost limit (416), then the predictive buildis added to the database as an impermissible predictive build (418), andthe build-to-order process 100 is used (412). As such, the marginal costwill not have to be estimated for this predictive build in the future todetermine that the build-to-order process 100 should be used instead ofthe predictive build process 300. However, if the estimated marginalcost is less than the acceptable marginal cost limit (416), then thepredictive build process 300 is used instead of the build-to-orderprocess 100 (420).

When the predictive build process 300 is finished, and an actual finalbuild of the computing system shipped in satisfaction of the order forthe computing system, the actual marginal cost of using the predictivebuild process 300 as compared to the build-to-order process 100 will beknown. If the actual marginal cost is greater than the acceptablemarginal cost limit (422), then the predictive build is added to thedatabase as an impermissible predictive build (424), so that thepredictive build process 300 is not used for this predictive build inthe future. This situation corresponds to the estimated marginal costbeing less than the acceptable marginal cost limit, but the actualmarginal cost being greater than the acceptable marginal cost limit.

By comparison, if the actual marginal cost is less than the acceptablemarginal cost limit, then the predictive build is added to the databaseas a permissible predictive build (426). As such, the predictive buildprocess 300 will be used for this predictive build in the future,without having to estimate the marginal cost. This situation correspondsto both the estimated marginal cost and the actual marginal cost eachbeing less than the acceptable marginal cost limit.

FIG. 5 shows an example method 500 for selecting the features to includewithin a predictive build of a computing system. Stated another way, themethod 500 is for defining a predictive build of a computing system byselecting the features to include within the predictive build by whichthe predictive build is defined. The method 500 can be performed toimplemented part 402 of the method 400.

In general, there is a pool of potential features that can be selectedfrom to select the features to include within a predictive build.Furthermore, the features to include within the predictive build areselected from those potential features of the pool that were included inpast iterations of the computing system—that is, in past actual buildsof the computing system in fulfillment of past customer orders for thecomputing system. Each such potential feature has a classification and adistribution.

The classification of each potential feature corresponds a marginal costof including the potential feature within the predictive build of thecomputing system. In one implementation, each potential feature isclassified within a corresponding tier, from a highest marginal costtier to a lowest marginal cost tier. Potential features within highermarginal cost tiers contribute more to the marginal cost of thepredictive build, whereas potential features within lower marginal costtiers contribute less to the marginal cost of the predictive build.Stated another way, features within higher marginal cost tiers are moreexpensive from a time or cost perspective to “undo” (i.e., remove ormodify) in an actual final build of the computing system after havingbeen included in a predictive build of the system that is modified torealize this actual final build. Features within lower marginal costtiers are similarly less expensive to “undo” in the actual final build.

The marginal cost of including a feature within a predictive build canbe equal to a sum of three costs or times. The first cost or time is thecost or time to install the feature into the computing system for anactual final build thereof. The second cost or time is the cost or timeto arrange the feature into a desired configuration of the computingsystem for an actual final build thereof. The third cost or time is thecost or time to test the given feature as installed within the computingsystem for an actual final build thereof. The three costs may thus besummarized as installation, configuration, and testing costs,respectively. Each of these three costs or times can be obtained byaveraging the costs and times of past actual final builds of thecomputing system in satisfaction with historical customer orders for thesystem.

In one implementation, there are four marginal cost tiers among which afeature can be classified. Each marginal cost tier may be defined bymarginal feature-inclusion costs as a range of percentages, less than100%, of the cost or time to test the final build of a computing systemin the build-to-order process 100—that is, as a range of percentages nogreater than 100% of the cost or time to perform part 106 of thebuild-to-order process 100. A feature of the highest marginal cost tierhas a marginal cost that is above A % of the cost or time to performpart 106; a feature of the next highest tier has a marginal cost betweenA % and B % of the cost or time to perform part 106; a feature of thethird highest tier has a marginal cost between B % and C %; and afeature of the lowest marginal cost tier has a marginal cost below C %.In one implementation, A, B, and C may be set to five, twenty-five, andseventy-five, respectively.

The distribution of each potential feature is the distribution of thepotential feature within past customer orders of the computing system.The distribution indicates how often the given potential feature waspresent within the past customer orders. The distribution of a potentialfeature thus provides a measure of how often the feature was presentwithin the actual builds of the computing system in fulfillment of pastcustomer orders for the computing system in question.

Any potential feature that is classified within the highest marginalcost tier is selected first for inclusion within the potential build ofthe computing system (502), up to a predetermined maximum number offeatures. In one implementation, this predetermined maximum number maybe six, for instance. Having a predetermined maximum number of featureslimits the processing required to perform the techniques disclosedherein. It has been found that a relatively small number of featurescontribute the most to the marginal cost of a predictive build, suchthat limiting the number of features to include within the predictivebuild is computationally efficient with an acceptable minimal loss ofaccuracy. If there are more features within the highest marginal costtier than the predetermined maximum number of features, than the justthe predetermined maximum number of potential features having thehighest marginal costs are selected in part 502.

If the predetermined maximum number of features has been selected (504),then the method 500 is finished. Otherwise, however, potential featuresthat were most often present within past customer orders of thecomputing system are selected for inclusion into the predictive build(508), based on their distributions. Selecting the highest marginal costpotential features in part 502 and the most present in prior customerorder potential features in part 508 thus balances cost with frequencyin the feature selection process.

Once the features have been selected for inclusion within apredetermined build of a computing system in accordance with the method500 to effectuate part 402 of the method 400, the marginal cost of usingthe predictive build (i.e., the marginal cost of the predictive build)can be estimated in part 414 of the method 400 if necessary as follows.Specifically, what are referred to herein as marginal cost values of thefeature included within the predictive build are added together to yielda sum that is the estimated marginal cost of the predictive build. Themarginal cost value of a feature is generally based on the marginal costof including the feature within the predictive build.

In one implementation, the marginal cost value of a feature is equal tothe marginal cost of including the feature within the predictive build,multiplied by a number of instances of the feature to be included withinthe predictive build. For example, consider a feature that is aprocessor. There may be more than one processor included in thepredictive build. Therefore, the marginal cost value of this feature isequal to the number of instances to be included in the predictive build,multiplied by the marginal cost value of the feature.

In one implementation, the number of instances of a feature to beincluded within the predictive build is selected as the sum of the meanof the feature's distribution within past customer orders for thecomputing system, and a predetermined value. As noted above, thedistribution indicates how often the feature was present within the pastcustomer orders for the computing system that is the subject of thepredictive build in question. In one implementation, the predeterminedvalue by which the mean is multiplied is equal to a standard deviationof the distribution multiplied by a predetermined positive constant,such as 0.5. The purpose of adding the predetermined value is to skewthe number of instances of a feature for inclusion within the predictivebuild higher than the mean of the feature's distribution. This isbeneficial, because it has been determined that in general, it is easierand/or less costly to remove an instance of a feature from a predictivebuild to realize an actual final build than it is to add an instance ofthe feature to the predictive build to realize the actual final build.

FIG. 6 shows an example system 600 by which the techniques that havebeen disclosed herein can be performed. The system 600 includes astorage device 602 and a computing device 604. The system 600 caninclude other devices as well, in addition to or in lieu of the devices602 and 604. The devices 602 and 604 may be directly connected to oneanother when both are present, they may be connected to one anotherindirectly over a network, and so on. The storage device 602 may be partof a different system or subsystem, such as a storage-area network(SAN), and stores a database 606 of permissible and/or predictive buildsin relation to which the method 400 is performed, as has been described.

The computing device 604 may be one or more such computing devices, likedesktop computers, laptop computers, server computing devices, and soon. The computing device 604 includes at least a storage device 608 anda processor 610. In an implementation in which the storage device 602 isnot present, the database 606 may be stored on the storage device 608instead. The storage device 608 is a non-volatile storage device like ahard disk drive and/or a flash drive (as is the storage device 602), andthe computing device 604 also typically includes a volatile storagedevice as well, such as semiconductor memory. The storage device 608stores a computer program 612 that the processor 610 executes to performthe methods 400 and/or 500 that have been described.

It is noted that, as can be appreciated by one those of ordinary skillwithin the art, aspects of the present invention may be embodied as asystem, method or computer program product. Accordingly, aspects of theembodiments of the invention may take the form of an entirely hardwareembodiment, an entirely software embodiment (including firmware,resident software, micro-code, etc.) or an embodiment combining softwareand hardware aspects that may all generally be referred to herein as a“circuit,” “module” or “system.” Furthermore, aspects of the presentinvention may take the form of a computer program product embodied inone or more computer readable medium(s) having computer readable programcode embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium include the following: an electrical connection havingone or more wires, a portable computer diskette, a hard disk, a randomaccess memory (RAM), a read-only memory (ROM), an erasable programmableread-only memory (EPROM or Flash memory), an optical fiber, a portablecompact disc read-only memory (CD-ROM), an optical storage device, amagnetic storage device, or any suitable combination of the foregoing.In the context of this document, a computer readable storage medium maybe any tangible medium that can contain, or store a program for use byor in connection with an instruction execution system, apparatus, ordevice.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device. Program codeembodied on a computer readable medium may be transmitted using anyappropriate medium, including but not limited to wireless, wireline,optical fiber cable, RF, etc., or any suitable combination of theforegoing.

In general, a computer program product includes a computer-readablemedium on which one or more computer programs are stored. Execution ofthe computer programs from the computer-readable medium by one or moreprocessors of one or more hardware devices causes a method to beperformed. For instance, the method that is to be performed may be oneor more of the methods that have been described above.

The computer programs themselves include computer program code. Computerprogram code for carrying out operations for aspects of the presentinvention may be written in any combination of one or more programminglanguages, including an object oriented programming language such asJava, Smalltalk, C++ or the like and conventional procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The program code may execute entirely on the user's computer,partly on the user's computer, as a stand-alone software package, partlyon the user's computer and partly on a remote computer or entirely onthe remote computer or server. In the latter scenario, the remotecomputer may be connected to the user's computer through any type ofnetwork, including a local area network (LAN) or a wide area network(WAN), or the connection may be made to an external computer (forexample, through the Internet using an Internet Service Provider).

Aspects of the present invention have been described above withreference to flowchart illustrations and/or block diagrams of methods,apparatus (systems) and computer program products according toembodiments of the invention. It will be understood that each block ofthe flowchart illustrations and/or block diagrams, and combinations ofblocks in the flowchart illustrations and/or block diagrams, can beimplemented by computer program instructions. These computer programinstructions may be provided to a processor of a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructions,which execute via the processor of the computer or other programmabledata processing apparatus, create means for implementing thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

It is finally noted that, although specific embodiments have beenillustrated and described herein, it will be appreciated by those ofordinary skill in the art that any arrangement calculated to achieve thesame purpose may be substituted for the specific embodiments shown. Thisapplication is thus intended to cover any adaptations or variations ofembodiments of the present invention. As such and therefore, it ismanifestly intended that this invention be limited only by the claimsand equivalents thereof.

We claim:
 1. A storage device storing a computer program executable by aprocessor to perform a method comprising: selecting a plurality offeatures to include within a predictive build of a computing system, thepredictive build being an anticipated final build of the computingsystem prior to receiving a firm customer order for the computing systemin accordance with which an actual final build of the computing systemis then built; estimating a marginal cost of first building thepredictive build and then modifying the predictive build to realize theactual final build, as compared to building the actual final buildwithout first building the predictive build and then modifyingpredictive build to realize the actual final build, based on thefeatures selected; responsive to determining that the marginal cost isless than a predetermined acceptable marginal cost limit, indicatingthat the predictive build should be built prior to receiving the firmcustomer order, and causing the computing system to be built inaccordance with the predictive build thereof prior to receiving the firmcustomer order; and responsive to determining that the marginal cost isgreater than the predetermined acceptable marginal cost limit,indicating that the predictive build should not be built prior toreceiving the firm customer order, and causing the computing system tobe built in accordance with the predictive build thereof after receivingthe firm customer order, wherein estimating the marginal cost comprises:adding together a marginal cost value for each feature to realize themarginal cost of first building the predictive build and then modifyingthe predictive build to realize the actual final build, wherein themarginal cost value for each feature, as a given feature, is equal tothe marginal cost of including the given feature within the predictivebuild multiplied by a number of the instances of the given feature to beincluded within the predictive build, wherein the number of instances ofthe given feature to be included within the predictive build is selectedas a sum of a mean of a distribution of the given feature within pastcustomer orders of the computing system, and a product of apredetermined positive constant and a standard deviation of thedistribution, and wherein the distribution indicates how often the givenpotential feature was present within the past customer orders, whereinthe computing system is built in accordance with the predictive build,and thereafter tested and shipped to a customer.
 2. The storage deviceof claim 1, wherein selecting the features to include within thepredictive build comprises: selecting the features from a plurality ofpotential features based on: a classification of each potential featurethat was included in a past customer order of the computing system,wherein the classification of each potential feature, as a givenpotential feature, corresponds to a marginal cost of including the givenpotential feature within the predictive build of the computing system;and a distribution of each potential feature, as the given potentialfeature, within past customer orders of the computing system, thedistribution indicating how often the given potential feature waspresent within the past customer orders.
 3. The storage device of claim2, wherein each potential feature, as the given potential feature, isclassified within one of a plurality of tiers ordered from a highestmarginal cost tier to a lowest marginal cost tier, and selecting thefeatures from the potential features comprises: selecting any potentialfeature that is classified within the highest marginal cost tier, up toa predetermined maximum number of the features; and where thepredetermined maximum number of the features has not been reached,selecting the potential features that were most often present within thepast customer orders until the predetermined maximum number of thefeatures has been reached.
 4. A system comprising: a storage devicestoring a database of a plurality of permissible predictive builds of acomputing system; a computing device to: select a plurality of featuresto include within a predictive build of the computing system, thepredictive build being an anticipated final build of the computingsystem prior to receiving a firm customer order for the computing systemin accordance with which an actual final build of the computing systemis then built; if the predictive build is identical to any of thepermissible predictive builds stored in the database, indicate that thepredictive build should be built; if the predictive build is notidentical to any of the permissible predictive builds, estimate amarginal cost of first building the predictive build and then modifyingthe predictive build to realize the actual final build, as compared tobuilding the actual final build without first building the predictivebuild and then modifying predictive build to realize the actual finalbuild, based on the features selected; if the marginal cost is less thana predetermined acceptable marginal cost limit, indicate that thepredictive build should be built, and cause the computing system to bebuilt in accordance with the predictive build thereof prior to receivingthe firm customer order; and if the marginal cost is greater than thepredetermined acceptable marginal cost limit, indicate that thepredictive build should not be built, and cause the computing system tobe built in accordance with the predictive build thereof after receivingthe firm customer order, wherein each potential feature of a pluralityof potential features, as the given potential feature, is classifiedwithin one of a plurality of tiers ordered from a highest marginal costtier to a lowest marginal cost tier, and the computing device is toselect the features from the potential features by: selecting thefeatures from the potential features based on: a classification of eachpotential feature that was included in a past customer order of thecomputing system, wherein the classification of each potential feature,as a given potential feature, corresponds to a marginal cost ofincluding the given potential feature within the predictive build of thecomputing system; and a distribution of each potential feature, as thegiven potential feature, within past customer orders of the computingsystem, the distribution indicating how often the given potentialfeature was present within the past customer orders; selecting anypotential feature that is classified within the highest marginal costtier, up to a predetermined maximum number of the features; and wherethe predetermined maximum number of the features has not been reached,selecting the potential features that were most often present within thepast customer orders until the predetermined maximum number of thefeatures has been reached, wherein the computing system is built inaccordance with the predictive build, and thereafter tested and shippedto a customer.
 5. The system of claim 4, wherein the database is furtherof a plurality of impermissible predictive builds of the computingsystem, wherein the computing device is further to, if the predictivebuild is identical to any of the impermissible predictive builds in thedatabase, indicate that the predictive build should not be built, andwherein the computing device is to estimate the marginal cost both ifthe predictive build is not identical to any of the permissiblepredictive builds and is not identical to any of the impermissiblepredictive builds.